#include "Comm.hpp"

int main()
{
    // 创建命名管道
    Makefile();
    // 获取key值
    key_t key = GetKey();
    // 创建共享内存
    int shmid = CreateShm(key);
    // 建立映射
    char *ptr = (char *)shmat(shmid, nullptr, 0);
    // 以读的方式打开文件
    int fd = open(filename.c_str(), O_RDONLY);

    // 进行通信
    while (true)
    {
        int code = 0;
        ssize_t n = read(fd, &code, sizeof(code));
        if (n < 0)
        {
            std::cout << "read fail" << std::endl;
            break;
        }
        else if (n == 0)
        {
            std::cout << "client quit" << std::endl;
            break;
        }
        else
        {
            std::cout << ptr << std::endl;
        }
    }
    // 关闭文件
    close(fd);
    // 取消映射
    shmdt(ptr);
    // 释放共享内存
    shmctl(shmid, IPC_RMID, nullptr);

    return 0;
}

